home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / sml_nj / 93src.lha / src / mips / mipsglue.sml < prev    next >
Encoding:
Text File  |  1993-01-27  |  2.3 KB  |  56 lines

  1. functor MipsAssembler(structure Endian : ENDIAN) : ASSEMBLER = 
  2.   struct
  3.     structure MipsAssemblyEmitter = MipsAsCode()
  4.     structure CoderInstr = MipsInstr(structure E=Endian)
  5.     structure MipsCoder = Coder(structure M=CoderInstr 
  6.                       and E=MipsAssemblyEmitter)
  7.     structure CMachineAssembler = MipsCM(structure C=MipsCoder
  8.                            and E=Endian)
  9.     structure MLAssembler = CPScomp(CMachineAssembler)
  10.  
  11.     fun generate(lexp,stream) =    (MipsAsmStream.asmStream := stream;
  12.                  MLAssembler.compile lexp;
  13.                  MipsCoder.finish())
  14.   end
  15.  
  16. functor MipsCodeGen(structure Endian : ENDIAN ) : CODEGENERATOR =  
  17.   struct
  18.     structure MipsMCodeEmitter = MipsMCode(structure E=Endian)
  19.     structure CoderInstr = MipsInstr(structure E=Endian)
  20.     structure MipsCoder = Coder(structure M=CoderInstr
  21.                       and E=MipsMCodeEmitter)
  22.     structure CMachineCoder = MipsCM(structure C=MipsCoder
  23.                        and E=Endian)
  24.     structure MipsCodeGenerator = CPScomp(CMachineCoder)
  25.     fun generate lexp = (MipsCodeGenerator.compile lexp;
  26.              MipsCoder.finish();
  27.              KeepMipsMCode.getCodeString())
  28.   end
  29.  
  30.  
  31. structure MipsAssemblerBig = MipsAssembler(structure Endian=BigEndian)
  32. structure MipsMCodeBig     = MipsCodeGen  (structure Endian=BigEndian)
  33. structure CompMipsBig      = Batch        (structure M=MipsMCodeBig
  34.                                      and A=MipsAssemblerBig)
  35. structure IntMipsBig       = IntShare     (structure Machm=MipsMCodeBig
  36.                                   val fileExtension=".mipseb"
  37.                             functor Debugger=BogusDebugger)
  38. structure IntMipsBigD      = IntShare     (structure Machm=MipsMCodeBig
  39.                                  val fileExtension=".mipseb"
  40.                             functor Debugger=RealDebugger)
  41.  
  42. structure MipsAssemblerLittle = MipsAssembler(structure Endian=LittleEndian)
  43. structure MipsMCodeLittle     = MipsCodeGen  (structure Endian=LittleEndian)
  44. structure CompMipsLittle      = Batch        (structure M=MipsMCodeLittle
  45.                                         and A=MipsAssemblerLittle)
  46. structure IntMipsLittle       = IntShare     (structure Machm=MipsMCodeLittle
  47.                                     val fileExtension=".mipsel"
  48.                                functor Debugger=BogusDebugger)
  49. structure IntMipsLittleD      = IntShare     (structure Machm=MipsMCodeLittle
  50.                                     val fileExtension=".mipsel"
  51.                                functor Debugger=RealDebugger)
  52.  
  53.  
  54.  
  55.  
  56.